Skip to content

Conversation

@smuething
Copy link

When trying socket activation for my Docker network plugin, I noticed
that the first request to the plugin never reached the plugin. As it
turns out, the relevant code for extracting the passed-in socket from
systemd never got called. I think this caused systemd to failover,
cede the socket and try running the plugin normally, but at that
point, docker already hangs.

Signed-off-by: Steffen Müthing [email protected]

When trying socket activation for my Docker network plugin, I noticed
that the first request to the plugin never reached the plugin. As it
turns out, the relevant code for extracting the passed-in socket from
systemd never got called. I think this caused systemd to failover,
cede the socket and try running the plugin normally, but at that
point, docker already hangs.

Signed-off-by: Steffen Müthing <[email protected]>
@florolf
Copy link

florolf commented Apr 16, 2018

Can we please get this merged? This fixes the bug that causes the documented way of spawning plugins on demand (and also preventing race conditions, as far as I can tell) to fail, which is quite annoying.

@dave-tucker
Copy link
Contributor

Sorry it's taken me a while to review this one. I had reservations about adding this back as it was removed along with a dependency on cgo. Now we have support for building without systemd at all, it's likely safe to but due to https://github.com/docker/go-plugins-helpers/blob/master/sdk/unix_listener_nosystemd.go returning nil, nil it will need to include a nil check for listener to avoid panics on systems without systemd. @smuething I know this is > 6 months old, but if you'd like to make the change described above we should be good to merge. If not, and you need this urgently @florolf I can carry this PR.

@florolf
Copy link

florolf commented Apr 17, 2018

For the moment, I'm building the plugin I wanted to use with a vendorized version of go-plugin-helpers which has this patch applied, so it's not super urgent, but I figure this is probably breaking other people's setups as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants